<?
error_reporting(E_ALL);
ini_set('display_errors','On');

include_once "ControladorFuncionario.php";
include_once "../datos/LoginSQL.php";

class ControladorSistema
{
    private $algo = "algo!!!";
    
    private $objCTRL_func = null;
    
    private static $instancia = null;

    private function __construct()
    {
        $ob = new ControladorFuncionario();
        $this->setObjCtrlFunc($ob);
            
        //echo "He creado un " . __CLASS__ . "\n";
    }

    public function setAlgo($a){ $this->algo = $a; }
    public function getAlgo(){ return $this->algo; }
    
    public function setInstance($ob){ self::$instancia = $ob; }
    public static function getInstance()
    {
        if (!isset(self::$instancia))
	{
            $c = __CLASS__;

            // Check if it's already sitting in $_SESSION Load it from $_SESSION if it's there, and then unset the $_SESSION var
            if(!isset(self::$instancia) && isset($_SESSION['obj_ctrl_sistema']))
            {
                self::$instancia = $_SESSION['obj_ctrl_sistema'];
                unset($_SESSION['obj_ctrl_sistema']);
            }
            else if(isset(self::$instancia))
            {
                self::$instancia = null;
            }

            self::$instancia = new $c;
        }

        return self::$instancia;
        /*
        if(self::$instancia == null)
        {
            self::$instancia = new self;
        }
        
        return self::$instancia;
         */
    }
    
	public function setObjCtrlFunc($ob){ $this->objCTRL_func = $ob; }
	public function getObjCtrlFunc(){ return $this->objCTRL_func; }

	public function login($rut, $pass)
	{
		if($rut!="" && $pass!="")
		{
                    $arrFunc = LoginSQL::obtenerLoginSQL($rut, $pass);
			//echo "<pre>";
                        //print_r($arrFunc);
                        //echo "</pre>";
                    $n = count($arrFunc);
            
                    if($n>0)
                    {
                        foreach($arrFunc as $arr)
                        {
                            $rutBD = $arr[0];
                            $nombresBD = $arr[1];
                            $apellido_p_BD = $arr[2];
                            $apellido_m_BD = $arr[3];
                            $cargoBD = $arr[4];
                            $rut_notaria=$arr[5];
                            $objCtrlFunc = $this->getObjCtrlFunc();
                            $objCtrlFunc->crearFuncionario($cargoBD);
                            $objFunc = $objCtrlFunc->getObjFunc();
                            
                            //echo "<br>getNombres FUNCIONARIO login: ".$objFunc->getNombres();
                            
                                $objFunc->setRut($rutBD);
                                $objFunc->setNombres($nombresBD);
                                $objFunc->setApellido_p($apellido_p_BD);
                                $objFunc->setApellido_m($apellido_m_BD);
                                $objFunc->setCargo($cargoBD);
                                $objFunc->setRut_notaria($rut_notaria);
                                //echo "<br>rut: ".$objFunc->getRut();
                                //echo "<br>nombres: ".$objFunc->getNombres();
                                //echo "<br>apellido_p: ".$objFunc->getApellido_p();
                                //echo "<br>apellido_m: ".$objFunc->getApellido_m();
                                //echo "<br>cargo: ".$objFunc->getCargo();
                                
                                //$_SESSION["session_obj_func"] = serialize($objFunc);
                                
                                //Seteamos el objeto funcionario al controlador sistema
                                //$this->setObjCtrlFunc($objFunc);
                                //exit;
                                $_SESSION["obj_ctrl_sistema"] = serialize($this);
                                $_SESSION["logeado"]=1;

                                $pagina_redireccion = "lalala_login.php";
                                if($cargoBD=="administrativo"){ $pagina_redireccion = "principal_administrativo.php"; }
                                if($cargoBD=="notario"){ $pagina_redireccion = "principal_notario.php"; }
                                if($cargoBD=="magistrado"){ $pagina_redireccion = "principal_ministro.php"; }
                                if($cargoBD=="cajero"){ $pagina_redireccion = "principal_cajero.php"; }
                                ?><script>window.location="<?=$pagina_redireccion;?>";</script><?
                                 			
                                
                            //echo "<br>Bien<br>";
                        }
                    }
                    else
                    {
                        //Login falso
                        echo "Error, usuario o contraseña incorrectos";
                    }
		}
		else echo "Complete todos los datos";
	}
}
?>